var datagrid; //定义全局变量datagrid
var editRow = undefined; //定义全局变量：当前编辑的行
var selectUserId = "";//人员编辑id
$(function(){
    //加载部门树
    queryDepartmentTree();
    queryYearthList("reportYearth");
    queryMonthList("reportMonth");

    /**
     * 保存按钮事件
     */
    $('#btn_save').on("click", function () {
        //var ret = $("#hdRegisterForm").form('validate');
        //表单验证
        if($("#infoForm").form('validate')){
            layer.confirm("确定保存？",{btn:['确定','取消']},function(){
                var layerIndex=parent.layer.getFrameIndex(window.name); //获取窗口索引
                //序列化表单数据
                var data = $("#infoForm").serializeArray();
                $.ajax({
                    url:ROOT_PATH + '/accidentEvent/osha/fire/addFireInfo.shtml',//提交地址
                    data:data,//将表单数据序列化
                    type:"POST",
                    dataType:"json",
                    success:function(result){
                        if (result.success){
                            layer.msg(result.message,{time:1000,icon:1},function(){
                                WindowManager.closeLayer({
                                    returnValue:""
                                });
                            });
                        }else{
                            layer.msg(result.message,{time:1000,icon:1},function(){
                                //parent.layer.close(layerIndex);
                            });
                        }
                    }
                });
            });
        }else{
            layer.msg("请按规则填写信息!",{time:1000,icon:2});
        }

    });
    /**
     * 数值设置的方法
     */
    $("#firstGradeNum").numberspinner({
        onChange:function(newVal,oldVal){
            setNumValue();
        }
    });
    $("#secondGradeNum").numberspinner({
        onChange:function(newVal,oldVal){
            setNumValue();
        }
    });
    $("#thirdGradeNum").numberspinner({
        onChange:function(newVal,oldVal){
            setNumValue();
        }
    });
    $("#fourthGradeNum").numberspinner({
        onChange:function(newVal,oldVal){
            setNumValue();
        }
    });
    $("#firstGradeLoss").numberspinner({
        onChange:function(newVal,oldVal){
            setLossNum();
        }
    });
    $("#secondGradeLoss").numberspinner({
        onChange:function(newVal,oldVal){
            setLossNum();
        }
    });
    $("#thirdGradeLoss").numberspinner({
        onChange:function(newVal,oldVal){
            setLossNum();
        }
    });
    $("#fourthGradeLoss").numberspinner({
        onChange:function(newVal,oldVal){
            setLossNum();
        }
    });

});
/**
 * 设置数值
 */
function setNumValue(){
    var num1 = $("#firstGradeNum").numberspinner("getValue");
    var num2 = $("#secondGradeNum").numberspinner("getValue");
    var num3 = $("#thirdGradeNum").numberspinner("getValue");
    var num4 = $("#fourthGradeNum").numberspinner("getValue");
    $("#totalNum").numberspinner("setValue",parseFloat(num1)+parseFloat(num2)+parseFloat(num3)+parseFloat(num4));
}
function setLossNum(){
    var loss1 = $("#firstGradeLoss").numberspinner("getValue");
    var loss2 = $("#secondGradeLoss").numberspinner("getValue");
    var loss3 = $("#thirdGradeLoss").numberspinner("getValue");
    var loss4 = $("#fourthGradeLoss").numberspinner("getValue");
    $("#totalLoss").numberspinner("setValue",parseFloat(loss1)+parseFloat(loss2)+parseFloat(loss3)+parseFloat(loss4));
}
/**
 * 定义表单验证
 */
$.extend($.fn.validatebox.defaults.rules, {
    minLength: {
        validator: function(value, param){
            return value.length >= param[0];
        },
        message: '最小长度'
    },
    intOrFloat: {// 验证整数或小数
        validator: function (value) {
            // alert(/^\d+(\.\d+)?$/i.test(value));
            return /^\d+(\.\d+)?$/i.test(value);
        },
        message: '请输入数字，并确保格式正确'
    },
    validSelect:{//验证为空字符串
        validator:function(value){
            //alert(value!="请选择");
            return value!="请选择"&&value!='';
        },
        message:'请选择'
    }

});

/**
 * 查询部门树方法
 */
function queryDepartmentTree(){
    $.ajax({
        url:ROOT_PATH + '/permission/department/getDepartmentTree.shtml',//提交地址
        data:{parentId : 0},//将表单数据序列化
        type:"POST",
        dataType:"json",
        success:function(result){
            $('#dept').combotree(
                {
                    data:result,
                    loadFilter:function(data){
                        var newData = new Array();
                        newData.push({id:"",text:'请选择'});
                        newData.push(data[0]);
                        return newData;
                    }
                }
            );
            //事故发生单位
            $("#happenDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
            //报告单位
            $("#reportDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
            //主管单位
            $("#competentDeptId").combotree({
                data:result,
                loadFilter:function(data){
                    var newData = new Array();
                    newData.push({id:"",text:'请选择'});
                    newData.push(data[0]);
                    return newData;
                }
            });
        }
    });
}
/**
 * 人员信息选择
 */
var add_contractorInfo_func = function () {
    WindowManager.openLayer({
        type: 2,
        title: '选择人员信息',
        area: ['1150px', '70%'],
        content: ROOT_PATH + '/permission/user/simpleList.shtml?isMulti=0',
        callBack:function(data){//窗口关闭后的回调函数
            //$('#listGrid').datagrid("reload");
            if(selectUserId==""||selectUserId==null){
                var dutyUserED= datagrid.datagrid('getEditor', {index:editRow,field:'dutyUserName'});
                var dutyUserIdED= datagrid.datagrid('getEditor', {index:editRow,field:'dutyUserId'});
                $(dutyUserED.target).textbox("setValue",data[0].realName)
                $(dutyUserIdED.target).textbox("setValue",data[0].id)
            }else{//给正常文本框赋值
                //$("#"+selectUserId+"Id").textbox('setValue',data[0].id);
                $("#"+selectUserId).textbox('setValue',data[0].realName);
                $("#"+selectUserId+"Id").val(data[0].id);
                selectUserId = "";
            }
        }
    });
};
/**
 * 选择风险区域的方法
 */
var add_riskRegionInfo_func = function(){
    WindowManager.openLayer({
        type: 2,
        title: '选择风险区域',
        area: ['1150px', '70%'],
        content: ROOT_PATH + '/risk/region/simpleList.shtml',
        callBack:function(data){//窗口关闭后的回调函数
            $("#"+selectUserId).textbox('setValue',data.name);
            //$("#"+selectUserId+"Id").textbox('setText',data.name);
            $("#"+selectUserId+"Id").val(data.id);
            selectUserId = "";

        }
    });
}
/**
 * 选择作业项目
 */
var add_jobProject_func=function(){
    WindowManager.openLayer({
        type: 2,
        title: '选择项目',
        area: ['800px', '300px'],
        content: ROOT_PATH + '/threeSimultaneities/projectInfo/projectQueryList.shtml',
        callBack: function(data){
            //alert();
            $("#projectId").val(data[0].id);
            $("#project").textbox("setValue",data[0].name);
            //("#jobProject").textbox("setText",data[0].name);
        }
    });
}

/**
 * 查询数据字典列表的方法
 * @param id
 * @param code
 */
function queryDictionaryList(id,code){
    $.ajax({
        url:ROOT_PATH + '/permission/dictionary/queryDictionaryByDictionaryTypeCode.shtml',//提交地址
        data:{code : code},//将表单数据序列化
        type:"POST",
        dataType:"json",
        success:function(result){
            $('#'+id).combobox(
                {
                    data:result,
                    valueField:'id',
                    textField:'text',
                    loadFilter:function(data){
                        var newData = new Array();
                        newData.push({id:"",text:'请选择'});
                        for(var i=0;i<data.length;i++){
                            newData.push(data[i])
                        }
                        return newData;
                    }
                }
            );

        }
    });
}
/**
 * 设置年度下拉列表
 * @param id
 * @param code
 */
function queryYearthList(id){
    var date = new Date();
    var year = date.getFullYear();
    var yearthData = new Array();
    yearthData.push({id:"",text:"请选择"});
    for(var i =0;i<6;i++){
        var y = {id:year-i,text:(year-i)+'年'}
        yearthData.push(y);
    }
    $('#'+id).combobox(
        {
            data:yearthData,
            valueField:'id',
            textField:'text'
        }
    );
}
/**
 * 查询月份下拉列表
 * @param id
 */
function queryMonthList(id){
    var monthData = new Array();
    monthData.push({id:"",text:"请选择"});
    for(i =1;i<=12;i++){
        var m = {id:i,text:i+'月'};
        monthData.push(m);
    }
    $('#'+id).combobox(
        {
            data:monthData,
            valueField:'id',
            textField:'text'
        }
    );
}
/**
 * 选择风险信息弹出框方法
 */
var add_riskLevelInfo_func = function () {
    WindowManager.openLayer({
        type: 2,
        title: '选择风险矩阵信息',
        area: ['60%', '70%'],
        content: ROOT_PATH + '/risk/matrix/toMatrixPage.shtml',
        callBack:function(data){//窗口关闭后的回调函数
            $("#riskAssessMax").textbox("setValue",data.riskMax);
            $("#riskAssessPeople").textbox("setValue",data.riskPeople);
            $("#riskAssessMoney").textbox("setValue",data.riskMoney);
            $("#riskAssessEnvironment").textbox("setValue",data.riskEnvironment);
            $("#riskAssessPrestige").textbox("setValue",data.riskPrestige);
            $("#riskAssessUserId").textbox("setValue",loginUserId);
            $("#riskAssessUserId").textbox("setText",loginUserName);
        }
    });
};


/*==============================================================================*/
/**
 * 添加编辑行
 */
function appendTableRow(datagridId) {//添加列表的操作按钮添加，修改，删除等
    var datagrid =$("#"+datagridId);
    //添加时先判断是否有开启编辑的行，如果有则把开户编辑的那行结束编辑
    if (editRow != undefined) {
        datagrid.datagrid("endEdit", editRow);
    }
    //添加时如果没有正在编辑的行，则在datagrid的第一行插入一行
    if (editRow == undefined) {
        datagrid.datagrid("insertRow", {
            index: 0, // index start with 0
            row: {

            }
        });
        //将新插入的那一行开启编辑状态
        datagrid.datagrid("beginEdit", 0);
        //给当前编辑的行赋值
        editRow = 0;
    }
}

/**
 * 删除行
 */
function deleteTableRow (datagridId) {
    var datagrid =$("#"+datagridId);
    //删除时先获取选择行
    var rows = datagrid.datagrid("getSelections");
    //选择要删除的行
    if (rows.length > 0) {
        var index = layer.confirm("确定要删除吗？",{btn:["确定","取消"]},function(){
            var ids = [];
            /*for (var i = 0; i < rows.length; i++) {
             ids.push(rows[i].ID);
             }*/
            var row= datagrid.datagrid("getSelected");
            var selectedIndex =  datagrid.datagrid('getRowIndex',row);
            datagrid.datagrid('deleteRow', selectedIndex);
            editRow=undefined;
            //将选择到的行存入数组并用,分隔转换成字符串，
            //本例只是前台操作没有与数据库进行交互所以此处只是弹出要传入后台的id
            //alert(ids.join(','));
            layer.close(index);
        });
    }else {
        layer.alert("请选择删除行！");
    }
}

/**
 * 保存行数据
 */
function saveTableRow (datagridId) {
    var datagrid = $("#"+datagridId);
    //保存时结束当前编辑的行，自动触发onAfterEdit事件如果要与后台交互可将数据通过Ajax提交后台
    datagrid.datagrid("endEdit", editRow);
}

/**
 * 编辑行数据
 */
function editTableRow(datagridId) {
    var datagrid = $("#"+datagridId);
    //修改时要获取选择到的行
    var rows = datagrid.datagrid("getSelections");
    //如果只选择了一行则可以进行修改，否则不操作
    if (rows.length == 1) {
        //修改之前先关闭已经开启的编辑行，当调用endEdit该方法时会触发onAfterEdit事件
        if (editRow != undefined) {
            datagrid.datagrid("endEdit", editRow);
        }
        //当无编辑行时
        if (editRow == undefined) {
            //获取到当前选择行的下标
            var index = datagrid.datagrid("getRowIndex", rows[0]);
            //开启编辑
            datagrid.datagrid("beginEdit", index);
            //把当前开启编辑的行赋值给全局变量editRow
            editRow = index;
            //当开启了当前选择行的编辑状态之后，
            //应该取消当前列表的所有选择行，要不然双击之后无法再选择其他行进行编辑
            datagrid.datagrid("unselectAll");
        }
    }
    //加载风险类型下拉列表
    //queryRiskType();

}
/**
 * 取消编辑行
 */
function rejectTableRow (datagridId) {
    var datagrid = $("#"+datagridId);
    var index =  layer.confirm("确定撤销将删除所有的编辑数据！",{btn:['确定','取消']},function(){
        //取消当前编辑行把当前编辑行罢undefined回滚改变的数据,取消选择的行
        editRow = undefined;
        datagrid.datagrid("rejectChanges");
        datagrid.datagrid("unselectAll");
        layer.close(index);
    });

}
/**
 * 提交表格数据
 */
function getDetailData(datagridId){
    var datagrid = $("#"+datagridId);
    //保存表格编辑数据
    saveTableRow();
    //获取编辑表格数据
    var rows= datagrid.datagrid("getChanges");
    return JSON.stringify(rows);
}



